package edu.amm.fanal.api;

/**
 * Краевая задача для нелинейного обыкновенного дифференциального уравнения
 * второго порядка вида:
 * <br>
 * <center><b> - x^(2) + f(t, x, x^(1)) = 0</b></center>
 * 
 * @author Иванов Илья
 * @since 2013-05-10
 *
 */
public class NonlinearProblem extends BoundaryProblem {
	
	private Function f = Function.createIdentical(F_DIM, 0);
	
	/**
	 * @param leftBound Левая граница задачи.
	 * @param leftValue Значение решения на левой границе.
	 * @param rightBound Правая граница задачи.
	 * @param rightValue Значение решения на правой границе.
	 */	
	public NonlinearProblem(double leftBound, double leftValue, double rightBound, double rightValue) {
		super(leftBound, leftValue, rightBound, rightValue);
	}
	
	/**
	 * @param f Функция f уравнения.
	 */
	public void setF(Function f) {
		Function.checkFunction(f, "f", F_DIM);
		this.f = f;
	}
	
	/**
	 * @return Функция f из уравнения. По умолчанию тождественно равна нулю.
	 */
	public Function getF() {
		return f;
	}
	
	/**
	 * Количество переменных функции f.
	 */
	public static final int F_DIM = 3;
}